package store.lunangangster.engine.impl.entity.mgr;

import store.lunangangster.engine.EngineClock;
import store.lunangangster.engine.ProcessEngineConfiguration;

/**
 * AbstractManager可以知晓其他在{@link ProcessEngineConfiguration}中注册的{@link EntityManager}
 *
 * @author cwk
 * @version 1.0
 */
public abstract class AbstractManager {
  protected ProcessEngineConfiguration processEngineConfiguration;

  public AbstractManager(ProcessEngineConfiguration processEngineConfiguration) {
    this.processEngineConfiguration = processEngineConfiguration;
  }

  public TaskEntityManager getTaskEntityManager() {
    return processEngineConfiguration.getTaskEntityManager();
  }

  public DeploymentEntityManager getDeploymentEntityManager() {
    return processEngineConfiguration.getDeploymentEntityManager();
  }

  public IdentityLinkEntityManager getIdentityLinkEntityManager() {
    return processEngineConfiguration.getIdentityLinkEntityManager();
  }

  public VariableEntityManager getVariableEntityManager() {
    return processEngineConfiguration.getVariableEntityManager();
  }

  public ProcessDefinitionEntityManager getProcessDefinitionEntityManager() {
    return processEngineConfiguration.getProcessDefinitionEntityManager();
  }

  public ExecutionEntityManager getExecutionEntityManager() {
    return processEngineConfiguration.getExecutionEntityManager();
  }

  public ResourceEntityManager getResourceEntityManager() {
    return processEngineConfiguration.getResourceEntityManager();
  }

  public EngineClock getEngineClock() {
    return processEngineConfiguration.getEngineClock();
  }

}
